//
//  NSString+Extension.h
//  DGGCommonSDK
//
//  Created by dgg_hzk on 2019/11/20.
//

#import <Foundation/Foundation.h>

#define kFormat(_text_)   [NSString stringWithFormat:@"%@",_text_]

@interface NSString (Extension)

+ (NSString *)currentTime;

+ (NSString *)transformToJsonWithDic:(NSDictionary *)dic;

+ (NSString *)imageToBase64:(UIImage *)originImage;

/**
 *  判断字符串是否为空
 *
 *  @param str 要判断的字符串
 *
 *  @return 字符串 是空的时候 返回YES   不是空的时候返回 NO
 */
+(BOOL) isEmpty:(NSString *)str;
/**
 *  判断字符串是否为空,如果为空替换为指定字符串
 *
 *  @param str 要判断的字符串
 *  @param replaceStr 要替换的字符串
 *
 *  @return 不为空的字符串
 */
+(NSString *)isEmpty:(NSString *)str replaceStr:(NSString *)replaceStr;

/**
 documentPath路径
 
 @return 路径
 */
+ (NSString *)documentPath;


#pragma mark - 字符串替换 -
/**
 字符串判断为空替换
 
 @param replaceString 原本字符串
 @return 替换的字符串(默认:暂无)
 */
+ (NSString *)stringWithReplaceString:(NSString *)replaceString;

/**
 字符串判断为空替换
 
 @param replaceString 原本字符串
 @param showString 原本字符串为空时替换的字符串
 @return 替换的字符串
 */
+ (NSString *)stringWithReplaceString:(NSString *)replaceString showString:(NSString *)showString;

#pragma mark - 正则替换HTML标签 -
/**
 正则替换HTML标签
 
 @param string 原本的字符串
 @return 正则去掉HTML标签的字符串
 */
+ (NSString *)getZZwithString:(NSString *)string;

/**
 更具语言读取本地字符串
 
 @param key 字符串key
 @return 字符串
 */
+(NSString*)localizedForKey:(NSString *)key;

/**
 字符串MD5加密
 
 @param str 要加密的字符串
 @return MD5加密后的字符串
 */
+ (NSString *)md5:(NSString *)str;


/**
 文件MD5加密-一般用作文件名
 
 @param filePath 文件路径
 @return 文件MD5加密后的字符串
 */
+ (NSString *)fileMD5:(NSString *)filePath;

/**
 秒转时分秒
 
 @return 时分秒
 */
- (NSString *)getMMSSFromSS;

/**
 秒转分钟
 
 @return 分钟数
 */
- (NSString *)seconds2Minutes;

- (NSString *)emoji;

- (CGSize)sizeWithMaxWidth:(CGFloat)width andFont:(UIFont *)font;

- (NSString *)originName;

- (NSString *)firstStringSeparatedByString:(NSString *)separeted;

- (CGSize)sizeWithMaxSize:(CGSize)maxSize textFont:(UIFont *)font;

/**
 获取字符串高度
 
 @param size 字符大小
 @param width 最大宽度
 @return 高度
 */
- (float)getHeightWithFontSize:(int)size width:(float)width;

/**
 获取字符串宽度
 
 @param size 字符大小
 @param hight 最大高度
 @return 宽度
 */
- (float)getWidthWithFontSize:(int)size hight:(float)hight;

/**
 去掉前后空格
 
 @return str
 */
-(NSString *)trimString;

/**
 矫正字符串精度
 
 @return str
 */
-(NSString *)dNumber;

/**
 如果字符串为空 置为 @”“
 
 @return str
 */
- (NSString*)isEmpty;

/**
 修改某些字符串的大小
 
 @param font 大小
 @param loc 开始位子
 @param len 长度
 @return 新的富文本
 */
-(NSAttributedString*)attributedStrFont:(UIFont *)font loc:(NSInteger)loc len:(NSInteger)len;
/**
 修改某些字符串的大小
 
 @param font 大小
 @param loc 开始位子
 @param len 长度
 @param color 颜色
 @return 新的富文本
 */
-(NSAttributedString*)attributedStrFont:(UIFont *)font loc:(NSInteger)loc len:(NSInteger)len color:(UIColor *)color;

/**
 修改某些字符串的颜色以及背景颜色
 
 @param loc 开始位子
 @param len 长度
 @param color 颜色
 @param backgroundColor 背景颜色（可以为nil）
 @return 富文本
 */
-(NSAttributedString*)attrStringloc:(NSInteger)loc len:(NSInteger)len color:(UIColor *)color backgroundColor:(UIColor*)backgroundColor;

/**
 每隔3个字符打一个，
 
 @return str
 */
- (NSString *)separatedDigitString;

/**
 获取字符串首字母
 
 @return 字母字符串
 */
-(NSString*)getPinYin;

/**
 获取全拼
 
 @return 全拼
 */
- (NSString *)getAllPinyin;

/**
 获取全拼首字母
 
 @return 全拼首字母
 */
- (NSString *)getAllPinyinFirstLetter;

/**
 获取全拼和全拼首字母
 
 @param allPinyin 全拼
 @param allPinyinFirstLetter 全拼首字母
 */
- (void)getAllPinyin:(void(^)(NSString *allPinyin))allPinyin allPinyinFirstLetter:(void(^)(NSString *allPinyinFirstLetter))allPinyinFirstLetter;

/**
 转换为拼音
 
 @return 拼音字符串
 */
- (NSString *)transformToPinyin;

//数字进行单位处理
- (NSString *)changeAsset;

/**
 * 正则替换HTML标签
 * 本地数字格式化显示
 */
- (NSString *)localNumberString;

/**
 数字货币化
 
 @return 货币化数字
 */
- (NSString *)monetization;

/**
 * Base64编码
 */
- (NSString *)base64String;

/**
 * Base64解码
 */
- (NSString *)decodeBaseString;

/**
拼接OSS图片URL地址
 @param ossPath OSS裁剪参数
 @param tWidth 裁剪宽度
 @param tHeight 裁剪高度
 @return 图片URL地址
*/
- (NSString *)appendOSSImage:(NSString *)ossPath tWidth:(NSInteger)tWidth tHeight:(NSInteger)tHeight;

/**
拼接OSS图片URL地址--默认裁剪参数x-oss-process=image/resize
 @param tWidth 裁剪宽度
 @param tHeight 裁剪高度
 @return 图片URL地址
*/
- (NSString *)appendOSSImageWidth:(NSInteger)tWidth tHeight:(NSInteger)tHeight;

@end
